#ifndef TWITLIST_H
#define TWITLIST_H

#include "twitlistitem.h"
#include "QTwitLib.h"
#include <QWidget>
#include <QVBoxLayout>
#include <QLocale>
#include "getimage.h"

class IDS
{
    public:
        unsigned int statusId;
        QString screenName;
};

class TwitList : public QWidget
{
    Q_OBJECT
public:
    TwitList(QWidget *parent = 0);
    ~TwitList();

    void createList(QLinkedList<Returnables::StatusElement*> list);
    void deleteList();

    void setStatusOwnerColor(const QString &color);
    void setStatusOwnerBold(bool isBold = false);
    void setUsersColor(const QString &color);
    void setUsersBold(bool isBold = false);
    void setLinksColor(const QString &color);
    void setLinksBold(bool isBold = false);
    void setProfile(Returnables::ExtUserInfoElement extProfile);
    void updateFavoritedStatus(uint statusId, bool favorited);
    void removeTrashedStatus(uint statusId);
    void setCacheDir(QString cachedir);


private:
    QList<TwitListItem *> items;
    QList<IDS *> idsList;
    QVBoxLayout *mainLayout;

    QString formatTime(QString createdAt);
    QString formatStatus(QString status, QString screenName);
    QLocale *locale;
    QString formatSource(QString source);

    Returnables::ExtUserInfoElement profile;
    QString statusOwnerColor;
    QString statusOwnerBold;
    QString usersColor;
    QString usersBold;
    QString linksColor;
    QString linksBold;

    GetImage *getImage;
private slots:
    void emitFavorit(int pos, bool favorited);
    void emitReply(int pos);
    void emitTrash(int pos);
    void setImage(QString screen_name, QPixmap image);
signals:
    void favoritClicked(uint statusId, bool favorited);
    void replyClicked(const QString username);
    void TrashClicked(uint statusId);
};

#endif // TWITLIST_H
